
//preloading.....
load("library/common.js");

JEuler.system.loadJS("library/math.js");

(function() {

    //JEuler.system.loadJS("data/???.dat");
    JEuler.system.printCaption("23");
    JEuler.system.startTimerCount();

    var isAbundant = function(num) {
        var sum = 1, tmp = Math.floor(Math.sqrt(num));
        for(var i=2; i<=Math.floor(Math.sqrt(num)); i++) {
            if(num%i==0) sum+=(i + num/i);
        }
        if(tmp*tmp == num) num+=tmp;
        if(sum>num) {
            //print("num=" + num + ",sum=" + sum);
            return true;
        }
    }

    var hash = [], abundants=[];
    for(var i=4; i<=28123; i++) {
        if(isAbundant(i)) {
            hash[i] = 1;
            abundants.push(i);
        }
    }

    var sum=0;
    for(var i=1; i<28123; i++) {
        var pass=true;
        for(j=0; j<abundants.length; j++) {
            tmp = i-abundants[j];
            if(hash[tmp]) {
                pass=false;
                break;
            }
        }
        if(pass) {
            //print(i);
            sum += i;
        }
    }

    JEuler.system.print("SUM=" + sum);
    JEuler.system.printTimerCount();
    
})();


